<!DOCTYPE html>
<html>

<head>
  <meta charset="UTF-8" />
  <title>更新时的一个问题</title>
  <!-- 引入Vue -->
  <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
  <!-- 准备好一个容器-->
  <div id="root">
    <h2>人员列表</h2>
    <button @click="updateMei">更新马冬梅的信息</button>
    <ul>
      <li v-for="(p,index) of persons" :key="p.id">
        {{p.name}}-{{p.age}}-{{p.sex}}
      </li>
    </ul>
  </div>
</body>

<script type="text/javascript">
  Vue.config.productionTip = false; // 阻止Vue在启动时生成生产提示。

  const vm = new Vue({
    el: "#root",
    data: {
      persons: [
        { id: "001", name: "马冬梅", age: 19, sex: "女" },
        { id: "002", name: "周冬雨", age: 20, sex: "女" },
        { id: "003", name: "周杰伦", age: 21, sex: "男" },
        { id: "004", name: "温兆伦", age: 22, sex: "男" }
      ]
    },
    methods: {
      updateMei() {
        // this.persons[0].name = "马老师"; //奏效
        // this.persons[0].age = 69; //奏效
        // this.persons[0].sex = "男"; //奏效
        // this.persons[0] = { id: "001", name: "马老师", age: 69, sex: "男" }; // 不奏效
        this.persons.splice(0, 1, {
          id: "001",
          name: "马老师",
          age: 69,
          sex: "男"
        }); // 奏效
      }
    }
  });
</script>

</html>